package com.lcifn.middleware.rpc.serializer;

/**
 * 序列化
 * @author lichao
 * @date 2021/1/31 14:58
 */
public interface Serializer<T> {

    /**
     * 序列化对象，将对象转化为字节数组
     * @param entry
     * @return
     */
    byte[] serialize(T entry);

    /**
     * 反序列化
     * @param bytes
     * @param clazz
     * @return
     */
    T deserialize(byte[] bytes, Class<T> clazz);

    /**
     * 返回序列化对象类型的Class对象。
     */
    Class<T> getSerializeClass();
}
